This invention relates to a communication technique employed to execute multiple OSs using virtualization software in a computer with a multicore CPU or having a multi processor configuration.
In response to finer semiconductor process, a trend toward mounting multiple processor cores on a single LSI to achieve multiple cores has been promoted mainly in x86 servers. In the case of a server with a two-socket CPU, for example, 8 cores by 2 cores=16 cores are available in a single SMP system.
In order to use a large number of CPU cores efficiently, virtualization software is generally used to divide a single SMP and a single computer resource into multiple logical partitions (see US Patent Application Publication No. 2011/0161541, for example). The virtualization software manages association between a physical CPU core and a logical partition, and makes OSs run independently in corresponding logical partitions, thereby achieving effective use of a CPU core that cannot be used completely by a single OS.
A dedicated assist function realized by a CPU is indispensable for operation of the virtualization software. A CPU recently available from Intel Corporation has a dedicated assist function (hardware-assisted virtualization) intended to support management of a physical resource by the virtualization software. This function is known for example as VT-x (virtualization technology for Xeon) (see Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3C: System Programming Guide, Part 3, for example). Extended page table (EPT) can be used as an example of the hardware-assisted virtualization. Extended page table is a control data structure specified by the virtualization software and is provided in addition to a general page table specified by an OS in a logical partition. EPT defines a physical memory range to be provided to a logical partition. This assist function allows OSs in a plurality of logical partitions to specify physical memory areas that do not overlap each other in making access to a memory, thereby achieving virtualization of a server safely and efficiently.
In order to make EPT enable, virtualization software such as a hypervisor switches a CPU to a mode where virtualization is enable. In the case of an x86 CPU, an order for VMX ON or VMX OFF is used for switching the mode. In the below, a status where virtualization is enable is called a VMX ON mode, and a status where virtualization is disable is called a VMX OFF mode.
The virtualization software has conventionally been used mainly in a server computer to make a general-purpose computer or run a business application. Meanwhile, an x86 CPU has been mounted on more devices in recent years such as storage systems not functioning as server devices.
A storage system is an IT device dedicated to data storage with a large number of built-in hard disks (HDDs) or semiconductor disk drives. The storage system is roughly divided into a “block-dedicated machine” coupled to an SAN (storage area network) and makes access to HDDs in units of sectors, and a “file-dedicated machine” coupled to a LAN (local area network) and manages data in units of files.
Conventionally, these types of storage system s have formed different markets according to coupling interfaces (I/Fs). Meanwhile, in response to higher hardware performance and progress of commoditization of hardware, a unified-type storage system (hereinafter called a unified storage system) having both an SAN I/F and a LAN I/F is gaining a high profile.
The following two means are known to achieve the unified storage system:
(1) Packaging type: A file-dedicated machine and a block-dedicated are housed in the same casing and are coupled through a cable for storage access such as Fibre Channel.
(2) Virtualization software type: One hypervisor is made to run in a single SMP. A block function (block control microprogram or block micro) is performed in one logical partition, whereas a file function (file server OS) is performed in a different logical partition. A block and a file are coupled through a communication path used for coupling between logical partitions and represented by virtio, for example. There has been a known technique described for example in patent literature (see, for example, Japanese Patent Application Laid-open No. Hei 11-149385) that makes one software execute multiple OSs simultaneously.
A unified device of the packaging type realized by the means (1) involves twice as much hardware resources: a hardware resource for a block-dedicated machine and for a file-dedicated machine, leading to cost increase. Meanwhile, the means (2) achieves high use efficiency of a CPU and a memory, so that it achieves high cost performance.